The traditional software application executes in a standalone fashion on a computer. When the traditional application is invoked, a process is created in which the application executes in a standalone fashion. Users have come to expect certain characteristics of traditional, standalone applications, such as easily switching between executing applications, executing in their own windows, having document extensions associated with the application, and the like.
With the arrival of the Internet, a new type of application is becoming very popular—the “hosted” application. The term “hosted” application is often used to describe a new type of software application that is commonly deployed over the Internet. Typical hosted applications include multiple Web pages representing markup-based documents and may also include scripts or other resources. Commonly, the hosted application is stored on a Web server and downloaded to a local computer when used. In this scenario, Internet browsing software is usually used to download the hosted application and to provide an execution environment for the downloaded application. These types of applications have several benefits. For instance, browser-hosted applications have little impact on a computer when downloaded and installed. Unlike traditional applications, the code that is executed is essentially self-contained and executes within a confined execution space. Browser-hosted applications can be downloaded and installed without causing damage to existing applications installed on the computer.
Although superior to traditional applications in some ways, the conventional hosted application also suffers some shortcomings. Users have accepted certain types of applications being executed within the browsing environment. Small applets or incidental functionality on a Web page are examples. However, certain hosted applications are relatively complete and seem inappropriate when hosted in a browsing environment. For instance, users cannot switch between executing hosted-applications as easily as traditional applications. Users are sometimes confused by the relationship between the browsing software and the hosted application. This confusion often leads to some reluctance to accept the hosted application as a complete application.
As hosted applications become more and more prevalent, the software community would like to have greater acceptance by the consuming public. In order to gain that acceptance, hosted applications should be capable of behavior more like the traditional standalone software applications that consumers are already used to. However, an execution environment for hosted applications that provides some of the behavior expected of standalone applications has eluded those skilled in the art.